10 RANDOMIZE
100 CALL CLEAR
110 CALL SCREEN(2)
115 SO(1)=131
120 SO(2)=116
125 SO(3)=174
130 SO(4)=174
140 SM(1)=1046
145 SM(2)=1244
150 SM(3)=1396
155 SM(4)=1046
160 SM(5)=1244
165 SM(6)=1396
170 SM(7)=1046
175 SM(8)=1244
300 RESTORE 5000
310 READ A,A$
315 IF A=0 THEN 340
320 CALL CHAR(A,A$)
330 GOTO 310
340 C1(1)=14
342 C1(2)=13
343 C1(3)=7
344 C2(1)=8
345 C2(2)=4
346 C2(3)=2
347 C1(4)=16
348 C2(4)=8
350 C$(1)="FFFF4428102844FF"
360 C$(3)="00F7F7007F7F7F00"
370 C$(4)="3C7EFDFFFFBF7F3C"
371 C$(2)="FF712000000040FF"
375 CALL COLOR(1,1,1)
376 CALL COLOR(13,5,8)
381 FOR K=2 TO 12
382 CALL COLOR(K,16,1)
383 CALL SOUND(-10,K*55,K*2,K*110,K*2)
384 NEXT K
385 CALL COLOR(16,10,1)
386 CALL COLOR(10,14,1)
387 CALL COLOR(11,6,1)
388 CALL COLOR(15,7,8)
389 CALL COLOR(9,6,1)
400 REM   NUOVA PARTITA  
405 CALL COLOR(1,15,1)
410 CALL CLEAR
490 PRINT "       ``````````````       "
500 PRINT "       a    hijk    b              cttttpqrsttttd                      u            "
510 PRINT : :
520 PRINT "             }()*                       }|+-/                      }|{xy            "
530 PRINT "               z                                               BLEEPBIT @2018       "
540 PRINT "                                                           PRESS ANY KEY TO START   "
545 PRINT "                                                              SPACEBAR TO JUMP      ": : : :
546 A=0
547 B=1
549 CALL KEY(3,K,S)
550 A=A+1
551 IF A<5 THEN 555
552 A=1
553 B=B*-1
555 IF S<>0 THEN 700
560 FOR L=2 TO 23 STEP 3
565 CALL KEY(3,K,S)
567 IF B=1 THEN 580
570 CALL SOUND(-150,SO(A),10,INT(SO(A)*2.02),30-L,SM((L+1)/3),L+6)
575 IF S<>0 THEN 700 ELSE 620
580 CALL SOUND(-150,SO(A),10,INT(SO(A)*2.02),30-L,SO(A)*2,L+6)
610 IF S<>0 THEN 700
620 NEXT L
630 GOTO 549
700 CALL CLEAR
705 CALL SOUND(-1000,523,5,262,10,622,10)
710 L=0
715 LE=0
720 SC=0
724 CALL HCHAR(1,1,118,32)
725 CALL COLOR(1,2,8)
726 CALL HCHAR(2,1,35,32)
727 CALL HCHAR(3,1,32,704)
728 FOR K=1 TO 4
729 CALL HCHAR(1,K,107+K)
730 NEXT K
731 CALL SOUND(-1000,233,5,466,10,698,10)
732 A$="LEVELv01"
734 AY=1
736 AX=10
738 GOSUB 8000
740 A$="SCOREv0000"
742 AY=1
744 AX=23
746 GOSUB 8000
800 CALL SOUND(-1000,174,15,523,15,698,15)
801 LE=LE+1
802 L=L+1
804 IF L<5 THEN 808
806 L=1
807 IF LE=1 THEN 818
808 IF LE>99 THEN 814
810 A$=STR$(LE)
811 AY=1
812 AX=18-LEN(STR$(LE))
813 GOSUB 8000
814 A$=STR$(SC)
815 AY=1
816 AX=33-LEN(STR$(SC))
817 GOSUB 8000
818 CALL SOUND(-1000,174,20,523,20,698,20)
819 CALL HCHAR(3,1,32,608)
820 CALL CHAR(137,C$(L))
821 CALL CHAR(136,C$(L))
822 CALL COLOR(14,C1(L),C2(L))
823 CALL HCHAR(22,1,33,32)
824 CALL HCHAR(23,1,152,64)
825 CALL HCHAR(13,1,136,4)
826 Y=13
827 X=5
828 K=5
829 CALL COLOR(15,7,8)
830 KK=0
831 CALL CHAR(138,C$(L))
835 IF RND>0.5 THEN 860
840 IY=2
841 IF Y+IY<22 THEN 870
842 Y=17
850 GOTO 870
860 IY=-2
861 IF Y+IY>4 THEN 870
862 Y=9
870 IF X>28 THEN 896
872 IF RND>0.5 THEN 880
873 IF X>20 THEN 880
876 CALL HCHAR(Y+IY*-1,X,136,K)
880 CALL HCHAR(Y+IY,X,136,K)
881 IF RND>0.5 THEN 890
882 CALL HCHAR(Y+IY,X+2,32)
883 IF(RND>0.5)+(KK=1)THEN 890
884 KK=1
885 CALL HCHAR(Y+IY,X+1,137)
886 CALL HCHAR(Y+IY-1,X+1,145)
890 X=X+K
891 Y=Y+IY
895 GOTO 835
896 Y=Y+IY
900 CALL HCHAR(Y,X,136,33-X)
901 IF KK=1 THEN 910
902 CALL HCHAR(Y-IY,26,137)
903 CALL HCHAR(Y-IY-1,26,145)
910 CALL HCHAR(Y-1,32,144)
911 FOR K=1 TO 20 STEP 4
912 CALL SOUND(-250,262,K,622,K,523,K)
913 NEXT K
1010 Y=12
1100 X=1
1110 X=X+0.5
1111 IF X>31 THEN 9000
1120 IF INT(X)<>X THEN 1140
1125 CALL HCHAR(Y,X-1,32)
1130 CALL HCHAR(Y,X,128)
1135 GOTO 1150
1140 CALL HCHAR(Y,INT(X),129)
1150 CALL KEY(3,A,S)
1170 CALL GCHAR(Y+1,INT(X),K)
1180 IF K<>136 THEN 4000
1190 IF A=32 THEN 2000 ELSE 1110
2000 REM  SALTO  
2010 CALL GCHAR(Y-1,INT(X+1),K)
2020 IF(K<>32)+(X>30)THEN 2600
2030 CALL GCHAR(Y-1,INT(X+2),K)
2040 IF K<>136 THEN 2500
2050 CALL HCHAR(Y,INT(X),32)
2060 CALL HCHAR(Y-1,INT(X)+1,130)
2070 CALL SOUND(50,440,0)
2080 CALL HCHAR(Y-1,INT(X)+1,32)
2085 CALL HCHAR(Y-2,INT(X)+1,132)
2090 CALL SOUND(50,880,0)
2100 Y=Y-2
2110 X=INT(X+2)
2115 CALL HCHAR(Y,X-1,32)
2120 GOTO 1110
2500 CALL HCHAR(Y,INT(X),32)
2510 CALL HCHAR(Y-1,INT(X)+1,130)
2520 CALL SOUND(50,440,0)
2530 CALL HCHAR(Y-1,INT(X)+1,32)
2540 CALL HCHAR(Y,INT(X)+2,132)
2550 CALL SOUND(50,880,0)
2560 X=INT(X+2)
2570 CALL GCHAR(Y+1,X,K)
2580 IF K=32 THEN 4001
2585 CALL HCHAR(Y-1,X-1,32)
2590 GOTO 1110
2600 CALL SOUND(-150,110,15)
2610 GOTO 1110
3000 REM   game over  
3005 FOR K=10 TO 14
3006 CALL HCHAR(K,11,127,12)
3007 NEXT K
3010 A$="GAMEvvOVER"
3011 AY=11
3012 AX=12
3013 GOSUB 8000
3014 A$="HITvvSPACE"
3015 AY=13
3016 AX=12
3017 GOSUB 8000
3020 CALL KEY(3,K,S)
3030 IF S=0 THEN 3020 ELSE 400
4000 IF K<>32 THEN 6000
4001 CALL GCHAR(Y+3,INT(X),K)
4002 IF(K=136)+(K=137)+(K=138)THEN 4003 ELSE 4150
4003 KKK=K
4005 CALL HCHAR(Y,INT(X),32)
4010 FOR K=Y TO Y+2
4020 CALL HCHAR(K,INT(X),131)
4025 CALL SOUND(-200,800-(K*8),10)
4030 CALL HCHAR(K,INT(X),32)
4050 NEXT K
4053 CALL HCHAR(Y+2,INT(X),128)
4055 Y=Y+2
4056 K=KKK
4057 IF K<>136 THEN 6000
4060 GOTO 1110
4100 REM  cade 
4110 CALL HCHAR(22,INT(X),34)
4120 CALL SOUND(200,-6,5)
4130 GOTO 3000
4150 FOR K=Y TO 21
4160 CALL HCHAR(K,INT(X),131)
4170 CALL SOUND(-200,800-(K*8),10,1200-(K*11),10)
4180 CALL HCHAR(K,INT(X),32)
4190 NEXT K
4200 GOTO 4110
5000 DATA 128,3030207860704880,129,0006060F0C0C0406,130,0C0D0E0C0E112000,152,FFFFFFFFFFFFFFFF
5010 DATA 33,00000000000000FF,131,5A5A3C1818182424,34,00081C08083E7FFF,64,3C4299A1A199423C,35,FFFFFF0000000000
5020 DATA 104,00001F1F0E0E0E0E,105,0000777777777777,106,00006377777F7F7F,107,00007C7E7F777F7E
5030 DATA 108,1F1F0E0E0E6E7E3C,109,77777777777F7F3E,110,63777F7F7F777777,111,7E7F777F7E707070
5040 DATA 112,0E6E7E7E3C0000FF,113,77777F7F3E0000FF,114,77777777770000FF,115,7C70707070707077
5050 DATA 116,00000000000000FF,117,0070007000700070
5060 DATA 40,5500550055005103,41,550054005400FCFE,42,000070F8F8F87000,43,470E5C0054005103
5070 DATA 45,3F1F1F3F7FFEFCF8,47,0082C7EE7C381000,120,070FFEFCF8000000,121,F0783C1E0F0E1C38
5080 DATA 122,70E0603000000000,123,54005103470E4C00,124,5500550055005500,125,0100050015005500
5090 DATA 118,0000000000000000,144,F8F8F8B8F8F8F8F8,132,0D0E0C0E09050400,133,0058583C1B181414
5100 DATA 96,00000000000000FF,97,8080808080808080,98,0101010101010101,99,80808080808080FF
5110 DATA 100,01010101010101FF,145,0000E0A0BFA5E500
5200 DATA 0,0
6000 IF K=137 THEN 6500
6490 GOTO 3000
6500 FOR K=110 TO 510 STEP 200
6501 CALL SOUND(-100,K,INT(K/100)*2,K*4,INT(K/100)*2)
6502 CALL COLOR(15,11,8)
6503 NEXT K
6505 CALL COLOR(15,13,8)
6510 SC=SC+5
6520 A$=STR$(SC)
6530 AY=1
6540 AX=33-LEN(A$)
6550 GOSUB 8000
6555 CALL HCHAR(Y+1,INT(X),136)
6556 KK=2
6560 GOTO 1150
8000 FOR N=1 TO LEN(A$)
8010 CALL HCHAR(AY,AX+N-1,ASC(SEG$(A$,N,1)))
8020 NEXT N
8030 RETURN
9000 IF KK<>2 THEN 3000
9001 CALL HCHAR(Y,31,133)
9002 CALL HCHAR(Y,32,144)
9010 FOR K=24 TO 1 STEP-4
9020 CALL SOUND(-250,523,K,659,K,784,K)
9030 NEXT K
9040 FOR K=24 TO 1 STEP-4
9050 CALL SOUND(-250,523,K,698,K,880,K)
9060 NEXT K
9070 FOR K=24 TO 1 STEP-3
9080 CALL SOUND(-250,698,INT(K),622,INT(K),466,INT(K))
9090 NEXT K
9100 SC=SC+10
9110 GOTO 800
